pip の constraints の正しい用途
pip -r lockファイル とかけば良いところを無駄に一般人が知らなくてもいいオプションを利用して pip -r requirementsファイル -c lockファイル と書くやり方がベストプラクティスとして広まるのを防ぎたかったから記事にした (コメント) pip freeze の結果は -r オプションに渡せばよくて -c オプションは不要 (-c オプションは知らなくても良い) (コメント) バージョンロックの実現方法
requirements.txt
Flaskとだけ書く(バージョン指定なし)
pip install -r requirements.txt
pip freeze > requirements.lock
バージョン込みで出力されるので、新しい環境でも再現できる
ライブラリの更新
定期的に lock ファイルを更新しましょう。そのためには新しい仮想環境で lock ファイルを作り直すだけです。
感想:CIで自動化できそう!
利用バージョンのゆるい制限
requirements.txt 側に version specifier を書いておきましょう。
constraints.txt はこのようにして使うものなので、世の中の殆どの Python 製アプリの開発では使う必要がないでしょう。